System and method for providing alternate routing in a network

ABSTRACT

Methods and systems are described for performing alternate routing of communications in a network. The system initiates a communication from an origination endpoint in a packet-switched network, such as a VoIP network, to a destination endpoint, and determining, according to selection criteria, whether to route the communication to the destination endpoint using at least a second circuit-switched network, such as the PSTN.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosures, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever.

RELATED APPLICATIONS

This application is related to the following commonly owned pendingapplication, which is hereby incorporated herein by reference in itsentirety:

-   -   Application Ser. No. 09/827,352, titled ALTERNATE ROUTING OF        VOICE COMMUNICATIONS IN A PACKET-BASED NETWORK, filed Apr. 6,        2001.

BACKGROUND OF THE INVENTION

The invention disclosed herein relates generally to providing alternaterouting of communications in a network. More particularly, the presentinvention relates to routing packet switched communications, such asVoice over Internet Protocol (“VoIP”) communications from apacket-switched network to a circuit-switched network such as the publicswitched telephone network (“PSTN”) or other alternate network.

For many years, the PSTN has provided a reliable mechanism fortransmitting voice communications. With the rise of available bandwidthon the Internet, however, VoIP systems have become increasingly popular.These newer systems offer a number of advantages over the PSTN includingmore efficient use of network bandwidth, lower cost of ownership, andadvanced services such as video conferencing.

One disadvantage associated with conventional VoIP networks is that theyare highly dependent on the availability of network bandwidth to providean acceptable quality of service (“QoS”) for communications. Further,these networks are also highly dependent on the availability of networkcomponents to complete calls. If the network bandwidth drops below acertain threshold or a critical network component is unavailable, then acall placed on a conventional VoIP network typically will not reach itsintended destination and will fail. Conventional VoIP networks are thusrelatively fragile systems that are dependent on conditions existingabove given thresholds within their networks to complete calls.

There is thus also a need for a robust system which enables alternaterouting of communications in a network. More particularly, there is aneed for a system that enables the routing of VoIP communications to thePSTN when sufficient VoIP network resources are unavailable to completea communication.

SUMMARY OF THE INVENTION

The present invention addresses, among other things, the problemsdiscussed above performing routing in a network.

In accordance with some aspects of the present invention, computerizedmethods are provided for initiating a communication from an originationendpoint in a packet-switched network to a destination endpoint, anddetermining according to selection criteria, whether to route thecommunication to the destination endpoint using at least a secondcircuit-switched network. In some embodiments, a VoIP communication isinitiated from an origination endpoint in a VoIP network and routed to adestination endpoint using the PSTN network.

In some embodiments, the selection criteria used to determine whether toroute the communication using at least a second circuit-switched networkincludes the availability of a network resource such as a communicationlink or a network component. For example, in some embodiments, thecommunication is routed using at least a second circuit-switched networkif the resources for a communication link is below a specifiedthreshold. For example, in some embodiments, the specified threshold isdetermined by counting the number of voice calls on the link andcomparing them to a predetermined call count limit, such as a linkbandwidth limit or other threshold. In other embodiments, thecommunication is routed using at least a second circuit-switched networkif a network component, such as the destination endpoint, a callmediator, a gatekeeper, a gateway, or a router, is unavailable.

In some embodiments, the availability of a network component isdetermined by parsing an admission request containing a network addressassociated with a network endpoint, and determining if componentsassociated with the network address are members of a set of availablecomponents. For example, in some embodiments, a gatekeeper receives anadmission request containing a network address associated with thenetwork endpoint, and determines the availability of the networkendpoint by determining whether the network address is a member of a setof available network addresses. As another example, in some embodiments,a gatekeeper receives an admission request containing a network addressassociated with a network endpoint, and determines the availability of acall mediator by determining whether a call mediator associated with thenetwork address is a member of a set of available call mediators.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is illustrated in the figures of the accompanying drawingswhich are meant to be exemplary and not limiting, in which likereferences are intended to refer to like or corresponding parts, and inwhich:

FIG. 1 presents a block diagram of an exemplary system for providingalternate routing via a VoIP network according to an embodiment of theinvention;

FIG. 2 presents a flow diagram of a method for providing alternaterouting in a network according to an embodiment of the invention;

FIGS. 3 a and 3 b present flow diagrams of a method for providingalternate routing between an origination endpoint on a VoIP network anda destination endpoint on the PSTN according to an embodiment of theinvention;

FIGS. 4 a, 4 b, and 4 c present flow diagrams of a method for providingalternate routing between a PSTN origination endpoint and a VoIP networkendpoint according to an embodiment of the invention;

FIGS. 5 a and 5 b present flow diagrams of a method for providingalternate routing between VoIP network endpoints according to anembodiment of the invention; and

FIGS. 6 a, 6 b, and 6 c present flow diagrams that continue the methodfor providing alternate routing between VoIP network endpoints accordingto an embodiment of the invention begun in FIGS. 5 a and 5 b.

DETAILED DESCRIPTION

With reference to FIGS. 1 through 6 c, embodiments of the invention arepresented. FIG. 1 presents a block diagram of an exemplary system forproviding alternate routing via a VoIP network according to anembodiment of the invention. As shown, the system includes VoIP networkendpoints 100, a call mediator 105, a router 110 connected to apacket-switched network such as a VoIP network 115, a local gateway 120connected to a circuit-switched network 125 such as the PSTN, PSTNendpoints 127, an enterprise gatekeeper 130, a translation gatekeeper135, a translation proxy server 136, a translation gateway 137, aninbound gatekeeper 140, an inbound gateway 145, an outbound gatekeeper150, an outbound gateway 155, an inbound route server 160, an outbounddirectory gatekeeper 165, a first network site 166, and a second networksite 167.

A VoIP network endpoint 100 is generally a network node comprising anetwork device suitable for conducting communications in a VoIP network,such as, a VoIP-enabled telephone handset, facsimile machine, videoconferencing terminal, or other similar devices known in the art. Insome embodiments, a VoIP network endpoint 100 may comprise ageneral-purpose computer with audio input and output capabilitiessuitable for conducting VoIP communications.

VoIP endpoints 100 generally maintain and execute client software tofacilitate VoIP, as well as other types of communications. For example,according to one embodiment of the invention, VoIP endpoints 100maintain and execute client software that adheres to the H.323 standard,which provides a foundation for audio, video, and data communicationsacross IP-based networks 115. The H.323 standard and its relatedannexes, available from the H.323 Forum at www.h323forum.org and at theInternational Telecommunication Union at www.itu.int, is herebyincorporated herein by reference in its entirety. Additionally, H.323 isan umbrella standard that describes the architecture of the conferencingsystem and refers to a set of other standards (H.245, H.225.0, Q.931,and others) to describe its actual protocol. Alternatively, the systemmay be implemented using Session Initiation Protocol (“SIP”), MediaGateway Control Protocol (“MGCP”), or other well-known protocols fortransporting voice and other related data over communications networks.

Each VoIP endpoint 100 is associated with one or more identifyingnetwork addresses. For example, in some embodiments a VoIP endpoints 100is associated with an E.164 address as defined in the InternationalTelecommunication Union's international public telecommunicationnumbering plan, available athttp://www.itu.int/ITU-T/publications/index.html and hereby incorporatedherein by reference in its entirety. Alternatively, in otherembodiments, VoIP endpoints 100 are associated with IP addresses, H.323IDs, SIP URLs, MGCP endpoint names, and other network addressidentifiers known in the art.

VoIP endpoints 100 are connected to a call mediator 105. The callmediator 105 is generally a software or hardware module, such as anIP-PBX, a PBX with a VoIP interface, a PBX fronted by a gateway, orother similar device that is generally responsible for handlingintra-network communications. For example, the call mediator 105generally handles calls between two endpoints 100 at the same enterprisesite. The call mediator 105 is also generally responsible for presentingor otherwise delivering calls to other network elements in a privatedialing plan (“PDP”) format, in the PSTN-based format such as E.164 orprefixed-national, or other format suitable for routing through the VoIPnetwork 115.

For example, an enterprise may have a private dialing plan that enablesusers to communicate with any endpoint in the enterprise using anabbreviated phone number, e.g.—a private number. Exemplary dialing plansuse a 4 or 5 digit station number, with some unique prefix of the numberidentifying an enterprise site, and the remainder identifying anendpoint at that site. In some embodiments, the enterprise PDP also mapsto a corresponding E.164 dialing plan which facilitates dialingenterprise endpoints from a PSTN. Thus, in some cases, each site prefixin a PDP may map to a starting E.164 number, and each endpoint's E.164number is the sum of the starting E.164 number for the site and theendpoint number within the site.

For example, in one embodiment, site A166 has site prefix 4 and site Bhas site prefix 5 in a private dialing plan of length 5. Further, siteA's E.164 starting address is 17812620000 and site B's E.164 startingaddress is 17818650000. Accordingly, the E.164 equivalent for station43210 is 17812620000+3210=17812623210. The E164 address for station54321 is 17818650000+4321=17818654321. In some embodiments, a given sitemay actually have several private dialing plan prefixes, each with theirown starting E.164 number.

In some embodiments, to distinguish PDP numbers from PSTN numbers whendialing from within the enterprise, a unique prefix such as ‘9’ is usedto signify that a PSTN number (in specified format such as E.164,national, prefixed-national, or local) follows. For example,prefixed-national format generally uses a unique prefix to indicate thata national significant number follows, per E.164 definitions. As anotherexample, in the United States, the national access prefix is generally‘1’, so that any U.S. number can be dialed as 1+NPA+NXX+XXXX, the last10 digits being the national significant number. Thus, national formatis generally the national significant number. In other embodiments,dialing plans may require another unique prefix (e.g., ‘8’) to indicateinter-site dialing within the enterprise PDP, and require only thestation suffix number for dialing stations intra-site.

The call mediator 105 is connected to a circuit-switched network 125,such as the PSTN, via a local gateway 120. Gateways, as describedherein, generally function as an entrance or an exit to another network.Gateways, for example, translate IP-based communications to PSTN-basedcommunications, or vice-versa, and serve as a bridge between thesedifferent network types. In some embodiments, a gateway has a PSTNinterface connected to the PSTN 125 and an IP interface connected a VoIPnetwork 115. In some embodiments, as further described herein, gatewaysalso translate numbers and other network addresses by expanding orotherwise manipulating PDP numbers or other similar numbers dialed intoformats suitable for transmission on a particular network such as a PSTN125 or a VoIP network 115.

The local gateway 120 or overflow gateway enables the call mediator 105to route calls directly to the PSTN 125 and to PSTN endpoints 127 bybypassing the VoIP network 115. PSTN endpoints 127 generally comprisebut are not limited to traditional (non-VoIP) telephones, facsimilemachines, and other similar devices known in the art.

The call mediator 105 is connected to a packet-switched network 115,such as a VoIP network, via a router 110. Communications from the callmediator 105 to the VoIP network 115 are generally received by theenterprise gatekeeper 130 for further processing.

The enterprise gatekeeper 130 functions as a management component forthe system and, among other things, is generally responsible forproviding communication routing and control decisions to variouselements of the system such as call mediators 105, translationgatekeepers 135, inbound gatekeepers 140, inbound gateways 145, outboundgatekeepers 150, outbound gateways 155, inbound route servers 160,outbound directory gatekeepers 165, and other devices or softwaremodules. For example, the enterprise gatekeeper 130, based on the callednumber received from a call mediator 105, provides the functionality toroute the call to the IP address or other network identifying address ofthe destination endpoint 100. In some embodiments, the enterprisegatekeeper 130 may be connected to an enterprise gateway (not shown)fronting a legacy PBX or other similar element, and which provides,among other things, ISDN to IP translation and number translationcapabilities for calls to and from the enterprise site.

The enterprise gatekeeper 130 is also generally connected to atranslation gatekeeper 135 in communication with a translation gateway137 which passes a call directly from the translation gatekeeper 135 tothe PSTN 125, as further described herein. The translation gateway 137provides, among other things, number expansion functionality for privatedial plans by expanding abbreviated PDP called numbers to E.164 formatbefore delivery to the PSTN 125.

In some embodiments, the enterprise gatekeeper 130 is also generallyconnected to a translation proxy server 136. The translation proxyserver 136 receives calls generally intended for the translationgatekeeper 135 and relaunches these calls using an outbound directorygatekeeper 165 as further described herein. For example, in someembodiments, the translation proxy server receives calls requiringtranslation, performs required translations, and routes calls to thePSTN via an outbound directory gatekeeper connected to an outboundgatekeeper and an outbound gateway as further described herein. In someembodiments, the translation proxy server 136 receives calls from atranslation gatekeeper 136 to be routed via an outbound directorygatekeeper 165, for example when a translation gateway 137 isunavailable. The translation proxy server 136 provides similar numberexpansion functionality as a translation gateway including, among otherthings, number expansion functionality for private dial plans byexpanding abbreviated PDP called numbers to E.164 format before deliveryto the outbound directory gatekeeper 165 and the PSTN 125.

The enterprise gatekeeper 130 is also generally connected to an inboundgatekeeper 140. The inbound gatekeeper 140 receives communications fromthe PSTN 125 via an inbound gateway 145, and routes these communicationsinto the VoIP network 115. Based on the dialed number of thecommunication, the inbound gatekeeper 140 provides other elements of thesystem, such as the inbound gateway 145, with the intended destinationendpoint's 100 IP address or other network identifying address needed toroute the communication to the destination via the VoIP network 115. Theinbound gatekeeper 140 provides the intended destination endpoint's 100IP address or other network identifying address by consulting a routetable or other data structure stored in memory accessible to the inboundgatekeeper 140.

In some embodiments, the inbound gatekeeper 140 communicates with theinbound route server 160 to obtain the intended destination endpoint's100 IP address or other network identifying address. For example, insome embodiments, a route table or other data structure stored inmemory, such as a cache, at the inbound route server 160 is used toobtain the intended destination endpoint's 100 IP address or othernetwork identifying address. The data route table or other datastructure comprises a map correlating network endpoints 100 with IPaddresses or other network identifying addresses. In some embodiments, aconfiguration manager for internet telephony (“CoMIT”), as furtherdescribed in application Ser. No. 09/452,915, titled MULTISERVICENETWORK, filed Dec. 1, 1999, which is hereby incorporated by referencein its entirety, generates a network mapping or other network data usedby the inbound route server 160 to perform address lookups.

In some embodiments, the CoMIT also generates network mappings and othernetwork data used by other system components including, but not limitedto, outbound directory gatekeepers 165, enterprise gatekeepers 130, callmediators 105, VoIP network endpoints 100, routers 110, local gateways120, a translation gatekeepers 135, translation proxies 136, translationgateways 137, inbound gatekeepers 140, inbound gateways 145, outboundgatekeepers 150, outbound gateways 155, and other system components.

The enterprise gatekeeper 130 is also generally connected to an outbounddirectory gatekeeper 165 in turn connected to an outbound gatekeeper150. The outbound directory gatekeeper 165 receives communications fromthe enterprise gatekeeper 130 or other system element, and routes thesecommunications to the PSTN via an outbound gatekeeper 150 and anoutbound gateway 155. Based on the dialed number of the communication,the outbound directory gatekeeper 165, via the outbound gatekeeper 150,provides other elements of the system with the IP address or othernetwork identifying address of the appropriate outbound gateway 155using the least cost routing algorithms and other systems and methodsfurther described in application Ser. No. 09/827,352 and now pending.

The outbound directory gatekeeper 165 and the outbound gatekeeper 150provide the address of the appropriate outbound gateway 155 byconsulting a route table or other data structure stored in memoryaccessible to the outbound directory gatekeeper 165 and outboundgatekeeper 150 that maps E.164 numbers to IP addresses of outboundgateways 155. In some embodiments, the CoMIT, as further described inapplication Ser. No. 09/452,915 which is hereby incorporated byreference in its entirety, generates a network mapping and other networkdata used by the outbound directory gatekeeper 165 to perform addresslookups. In some embodiments, the outbound directory gatekeeper 165 andoutbound gatekeeper 150 provide a route to the intended destinationendpoint 100 based on least cost routing decisions. For example, in someembodiments, the outbound directory gatekeeper 165 and outboundgatekeeper 150 provide least cost routing decisions according to systemsand methods further described in application Ser. No. 09/827,352 and nowpending.

FIG. 2 presents a flow diagram of a method for providing alternaterouting in a network according to an embodiment of the invention. Acommunication is initiated from an origination endpoint in a firstnetwork to a destination endpoint, step 170. For example, in a VoIPnetwork, a call could be initiated between a first VoIP networkendpoint, such as a VoIP-enabled telephone, and a second VoIP networkendpoint. As another example, a call could be initiated between atraditional or “dumb” telephone handset in a PSTN and a VoIP networkendpoint, such as a VoIP-enabled telephone, facsimile machine, terminal,or other similar device. It will be apparent to one skilled in the artthat other permutations are possible within the scope of the system.

The system determines, according to selection criteria, whether to routethe call using the first network, step 175. For example, the systemmight only route a call via a VoIP network if sufficient end-to-endbandwidth is available to ensure a certain level of quality of service(“QoS”) for the call. If the selection criteria are satisfied, thesystem routes the communication using the first network, step 180.Alternatively, if the selection criteria are not satisfied, step 175,the system routes the communication using at least a second alternatenetwork, step 185. Thus, continuing the previous example, if sufficientbandwidth is not available, the system might route the call using thePSTN instead of the VoIP network. The system then establishes aconnection for the communication between the origination endpoint andthe destination endpoint, step 190.

FIGS. 3 a and 3 b present flow diagrams of a method for providingalternate routing between an origination endpoint on a VoIP network anda destination endpoint on the PSTN according to one embodiment of theinvention. The system initiates a communication from an on-netorigination endpoint, such as a VoIP endpoint, to an off-net destinationendpoint, such as a PSTN endpoint, step 195. For example, a user coulduse a VoIP-enabled phone to dial a number directed to a traditionaltelephone base unit on the PSTN.

A call mediator checks to determine if an enterprise gatekeeper isregistered or can otherwise be located, step 196. For example, the callmediator may consult a network mapping or other data structure stored inmemory accessible to the call mediator that indicates available networkcomponents, such as enterprise gatekeepers, associated with the callmediator. If no enterprise gatekeeper can be located, the call mediatorreroutes the call using the local gateway, step 197.

The call mediator (or in some embodiments, an enterprise gateway)determines whether the destination endpoint number of the communicationshould be translated before being sent to the enterprise gatekeeper orother system components, step 200, and if necessary, translates thenumber into an appropriate format, step 205. Multiple call mediatorsfrom different enterprise sites or even different enterprises may sharethe services of the same enterprise gatekeeper and other systemcomponents. Thus, in some embodiments, the system requires a uniquecustomer-specific identifier (“CSID”) prepended to all private dialingplan numbers in order to identify the endpoints associated with the eachspecific call mediator. The CSID is used by the enterprise gatekeeperand other system components to distinguish between different customers,enterprises, sites, and call managers. Otherwise, for example, twodifferent customers might be using the same numbers for their PDPs, andwithout the CSID, the enterprise gatekeeper receiving a PDP number suchas “5678” would have difficulty distinguishing which customer's endpointassociated with “5678” was the actual intended recipient of acommunication. CSIDs are thus associated with call managers and storedin memory accessible to the enterprise gatekeeper. In some embodiments,the call mediator prepends a CSID to all calls before sending them tothe enterprise gatekeeper.

Further, in some embodiments, the system also requires a technologyprefix added to numbers that might be routed to other networks, such asthe PSTN. For example, in some embodiments, the call mediator prepends atechnology prefix such as “96#” to all numbers intended for the PSTN.The enterprise gateway and other elements recognize the technologyprefix, and provide additional routing services as further describedherein. In some embodiments, the call mediator also formats PDP numbersas an E.164 address so that, among other things, calls can bealternately routed to the PSTN to complete the communication.

As further described herein, the system uses a number of standardsincluding H.323, H.225, H.245, and other protocol signaling techniquesknown in the art to facilitate communications between system components.The call mediator sends an admission request (“ARQ”) message to theenterprise gatekeeper requesting access to the VoIP network, step 210.The ARQ sent to the enterprise gatekeeper includes the number of thePSTN destination endpoint.

The enterprise gatekeeper determines, according to selection criteria,whether there are sufficient resources to route the call, step 211. Insome embodiments, selection criteria include bandwidth exceeding aspecified amount, availability of system components, and other criteriauseful in determining whether to route a communication. For example, theenterprise gatekeeper might determine whether there is sufficientbandwidth available to enable a voice or other media stream at aspecified minimal QoS. For example, in some embodiments, the enterprisegatekeeper evaluates QoS by tracking the call counts it processes andother information to determine whether there is sufficient bandwidth orother network resources to handle a call. If the call counts are over aspecified limit, then the enterprise gatekeeper returns an admissionrejection (“ARJ”) to the call mediator and the call is rerouted by thecall mediator via the local gateway. Alternatively, the system mightcheck to ensure that various system resources such as gatekeepers,gateways, routers, and other system components are available to routethe call to its intended destination. In some embodiments, the outboundgatekeeper communicates with the enterprise gatekeeper or the callmediator to determine whether there are sufficient resources to setupthe call. Thus, if the enterprise gatekeeper determines that sufficientresources do not exist to setup the call, then the enterprise gatekeepercommunicates an ARJ to the call mediator that the call should be routeddirectly to the PSTN via a local gateway, step 212.

The enterprise gatekeeper forwards the number of the PSTN destinationendpoint in a location request (“LRQ”) message to the outbound directorygatekeeper to locate an appropriate outbound gateway to deliver the callto the PSTN, and, based on least cost routing decisions furtherdescribed herein, for example those described in application Ser. No.09/827,352, now pending, the outbound directory gatekeeper selects theappropriate outbound gateway to deliver the call to the PSTN, step 215.The outbound directory gatekeeper then returns the IP address or othernetwork identifying address of the selected outbound gateway to theenterprise gatekeeper in a location confirm (“LCF”) message, step 220.The enterprise gatekeeper in turn sends the address of the selectedoutbound gateway to the call mediator in an admission confirm (“ACF”)message, step 225.

Continuing with FIG. 3 b, the enterprise gatekeeper directs the callmediator to initiate an H.225 call setup with the selected outboundgateway according to techniques known in the art and further describedherein, step 230. The call mediator contacts the outbound gateway tosetup the call, and the outbound gateway sends an ARQ to the outboundgatekeeper requesting a call setup, step 235.

The outbound gatekeeper returns an ACF to the outbound gateway, and anH.245 media stream setup commences between the call mediator and theoutbound gateway, step 240. Real time transport protocol (“RTP”) voicestreams or other voice streams begin between the call mediator and theoutbound gateway, step 245, and the outbound gateway delivers the callto the destination endpoint via the PSTN, step 250. The real timetransport protocol is a protocol that specifies a method for programs tomanage transmission of multimedia data, and is further described in theInternet Engineering Task Force (“IETF”) Request for Comments (“RFC”)1889, available at http://www.ietf.org/rfc/rfc1889.txt, which is herebyincorporated herein by reference in its entirety.

FIGS. 4 a, 4 b, and 4 c present flow diagrams of a method for providingalternate routing between a PSTN origination endpoint and a VoIP networkendpoint according to an embodiment of the invention. The systeminitiates a communication from an off-net origination endpoint, such asa PSTN endpoint, to an on-net destination endpoint, such as a VoIPendpoint, step 265. For example, a user could use a traditionaltelephone base unit on the PSTN to dial a number directed to aVoIP-enabled phone or other device on the VoIP network.

The communication is received by an inbound gateway connected to thePSTN, step 270. In some embodiments, the communication is directed to adirect inward dial (“DID”) number associated with a VoIP endpoint. DIDnumbers generally consist of public telephone system numbers mapped toVoIP endpoints of the system. For example, a company might have a blockof DID numbers associated with its VoIP endpoints.

In some embodiments, the inbound gateway translates a DID number to analternate PSTN-only E.164 equivalent (as opposed to solely a DID number)for additional routing options. Thus, as further described herein, if acommunication cannot be completed using the VoIP network, the inboundgateway can complete the call using translated E.164 alternate numbervia the PSTN. In other embodiments, as further described herein, theinbound gateway concatenates or otherwise translates the DID number toinclude a CSID or a technical prefix to facilitate locating the callmediator associated with the destination endpoint.

The inbound gateway requests access to the VoIP network for thecommunication, and sends an ARQ containing at least the number of thedestination endpoint to an inbound gatekeeper, step 275. The inboundgatekeeper sends a request to an inbound route server to determine apath to the enterprise gatekeeper associated with the destinationendpoint, step 280. As previously discussed herein, the inbound routeserver consults a system map or other data structure representingassociations between endpoints and enterprise gatekeepers, and selectsan enterprise gatekeeper associated with the destination VoIP endpoint.and communicates this information to the inbound gatekeeper, step 285.The inbound gatekeeper sends an LRQ to the enterprise gatekeeper thatcontains the E.164 address or other network identifying addressassociated with the destination VoIP endpoint, step 290.

The enterprise gatekeeper consults a system map or other data structurerepresenting associations between endpoints and enterprise gatekeepersto determine whether the destination endpoint identifying address isregistered with the enterprise gatekeeper, step 295. The enterprisegatekeeper also determines, according to selection criteria, whetherthere are sufficient resources to route the call as previously describedherein, step 300. For example, the enterprise gatekeeper might check thenumber of call counts to ensure that they are under a specifiedthreshold before proceeding to route the call.

If the destination endpoint is identified and sufficient resourcesexist, then the enterprise gatekeeper sends the inbound gatekeeper anLCF containing the IP address or other network identifier of thedestination endpoint and, in some cases, of a call mediator associatedwith the destination endpoint, step 305. The inbound gatekeeper returnsto the inbound gateway an ACF containing the IP address or other networkaddress of the destination endpoint or call mediator, step 306. If thedestination endpoint cannot be identified or sufficient resources do notexist then the enterprise gatekeeper returns a location rejection(“LRJ”) message to the inbound gatekeeper, step 308.

In some embodiments, the inbound gatekeeper attempts to alternatelyroute the call and sends an LRQ containing the IP address or othernetwork identifying address of the destination endpoint to an outbounddirectory gatekeeper, step 311. The outbound directory gatekeeperattempts to locate a route to the destination endpoint by consultingnetwork mappings or other data structures stored in memory accessible tothe outbound directory gatekeeper as further described herein, step 313.If the outbound directory gatekeeper cannot locate a route to thedestination address, then the outbound directory gatekeeper returns anLRJ to the inbound gatekeeper and the call terminates, step 316.Otherwise, the outbound directory gatekeeper returns an LCF to theinbound gatekeeper, step 319 containing the address of an outboundgateway that will route the call via the PSTN as further describedherein, step 322.

Turning to FIG. 4 c, if the call is routable via the enterprisegatekeeper, the inbound gatekeeper returns an ACF to the inboundgateway, and the an H.225 call setup is initiated between the inboundgateway and the call mediator associated with the destination endpointas known in the art and further described herein, step 325.

The call mediator sends an ARQ to the enterprise gateway requesting acall setup, step 330. The enterprise gatekeeper determines, according toselection criteria, whether there are sufficient resources to setup thecall via the VoIP network, step 335. In some embodiments, selectioncriteria include bandwidth exceeding a specified amount, availability ofsystem components, and other criteria useful in determining whether toroute a communication. For example, the enterprise gatekeeper mightdetermine whether there is sufficient bandwidth available to enable avoice or other media stream at a specified minimal QoS. For example, theenterprise gatekeeper might track call counts to evaluate bandwidth asfurther described herein. Alternatively, the system might check toensure that various system resources such as gatekeepers, gateways,routers, and other system components were available to route the call toits intended destination.

If the enterprise gatekeeper determines that sufficient resources do notexist to setup the call, then the enterprise gatekeeper communicates anARJ to the call mediator that the call cannot be routed via the VoIPnetwork and should either fail or be routed directly to the PSTN usingthe alternate E.164 equivalent or other similar number if available,step 340. The call mediator then communicates to the inbound gatewaythat the inbound gateway is now responsible for either routing the callto the PSTN or terminating the call.

If sufficient resources exist, however, the enterprise gatekeeper sendsan ACF to the call mediator, and an H.245 media stream setup commencesbetween the call mediator and the inbound gateway, step 345. RTP voicestreams or other voice streams begin between the call mediator and theinbound gateway, and the call mediator routes the stream to thedestination endpoint, step 350.

FIGS. 5 a and 5 b present flow diagrams of a method for providingalternate routing between VoIP network endpoints according to anembodiment of the invention. The system initiates a communication froman on-net origination endpoint, such as a VoIP endpoint, to an on-netdestination endpoint, such as another VoIP endpoint, step 355. Forexample, a user could use a VoIP-enabled phone to dial a number directedto another VoIP-enabled phone on a VoIP network.

The call mediator sends an ARQ to the enterprise gatekeeper requestingaccess to the VoIP network, step 360. The ARQ sent to the enterprisegatekeeper includes the number of the VoIP destination endpoint. Aspreviously described herein, the enterprise gatekeeper consults networkmappings and determines whether a call mediator associated with thedestination endpoint can be identified to route the call, step 365.

If a call mediator associated with the destination endpoint isidentified, the enterprise gatekeeper also determines, according toselection criteria, whether there are sufficient resources to route thecall as previously described herein, step 370. For example, theenterprise gatekeeper might check the number of call counts to ensurethat they are under a specified threshold before proceeding to route thecall.

If the enterprise gatekeeper cannot identify the destination callmediator or determines that sufficient resources do not exist to setupthe call, then the enterprise gatekeeper communicates an ARJ to the callmediator that the call cannot be routed via the VoIP network, and shouldbe alternately routed via the PSTN as further described in FIGS. 6 a-6 cand elsewhere herein, step 385. In some embodiments, the enterprisegatekeeper communicates an ARJ to the call mediator indicating that thecall mediator is responsible for the call and that the communicationshould either fail or be routed by the call mediator via a local gatewaydirectly to the PSTN using an alternate E.164 equivalent number or othersimilar number if available.

If sufficient resources exist, however, the enterprise gatekeeper sendsto the call mediator associated with the origination endpoint an ACFcontaining the IP address or other identifying network address of thecall mediator associated with the destination endpoint, step 375, and anH.245 media stream setup commences between the call mediator associatedwith the origination endpoint and the call mediator associated with thedestination endpoint, step 380.

Turning to FIG. 5 b, the call mediator associated with the destinationendpoint sends and ARQ to the enterprise gateway, step 395.

The enterprise gatekeeper determines, according to selection criteria,whether there are sufficient resources to setup the call via the VoIPnetwork, step 400. In some embodiments, selection criteria includebandwidth exceeding a specified amount, availability of systemcomponents, and other criteria useful in determining whether to route acommunication. For example, the enterprise gatekeeper might determinewhether there is sufficient bandwidth available to enable a voice orother media stream at a specified minimal QoS. For example, theenterprise gatekeeper might track call counts to evaluate bandwidth asfurther described herein. Alternatively, the system might check toensure that various system resources such as gatekeepers, gateways,routers, and other system components were available to route the call toits intended destination.

If the enterprise gatekeeper determines that sufficient resources do notexist to setup the call, then the enterprise gatekeeper communicates anARJ to the call mediator that the call cannot be routed via the VoIPnetwork and should either fail or be routed directly to the PSTN usingthe alternate E.164 equivalent or other similar number if available,step 402. The call mediator then communicates to the inbound gatewaythat the inbound gateway is now responsible for either routing the callto the PSTN or terminating the call.

If sufficient resources do exist, however, the enterprise gatekeepersends an ACF to the call mediator associated with the destinationendpoint, and an H.245 media stream setup commences between the callmediator associated with the origination endpoint and the call mediatorassociated with the destination endpoint, step 405. An RTP voice streamor other voice stream begins between the two call mediators, and thecall mediators routes the stream to their respective endpoints, step415.

FIGS. 6 a, 6 b, and 6 c present flow diagrams that continue the methodfor providing alternate routing between VoIP network endpoints accordingto an embodiment of the invention begun in FIGS. 5 a and 5 b. Theenterprise gateway determines whether the number for the VoIPdestination endpoint is in a format, such as E.164, suitable for routingvia an alternate network such as a PSTN, step 425. For example, the callmediator may already have translated a PDP number or otherwise providedalternate routing information for the communication. Alternatively, thenumber itself might originally have been in a format, such as E.164,suitable for routing to an alternate network, such as a PSTN, andrequired no translation by the call mediator.

If the address is in a suitable format such as E.164 or another format,the enterprise gatekeeper sends to an outbound directory gatekeeper anLRQ containing the address associated with the destination endpoint,step 430. As previously described herein and in application Ser. No.09/827,352, now pending, the outbound directory gatekeeper selects,according to least cost routing criteria, available resource criteria,and other criteria, an outbound gateway to route the communication tothe destination endpoint, step 435 (FIG. 6 b). The outbound directorygatekeeper sends the enterprise gatekeeper an LCF containing the IPaddress or other network identifying address of the selected outboundgateway, step 440, and the enterprise gatekeeper in turn sends an ACF tothe call mediator containing the address of the selected outboundgateway, 445.

The enterprise gatekeeper directs the call mediator to initiate an H.225call setup with the selected outbound gateway as known in the art andfurther described herein, step 450. The call mediator contacts theoutbound gateway to setup the call, and the outbound gateway sends anARQ to the outbound gatekeeper requesting a call setup, step 455.

As previously described herein, the outbound gatekeeper determines,according to selection criteria, whether there are sufficient resourcesto setup the call via the VoIP network, step 460. In some embodiments,the outbound gatekeeper communicates with the enterprise gatekeeper orthe call mediator to determine whether there are sufficient resources tosetup the call.

If the outbound gatekeeper determines that sufficient resources do notexist to setup the call, then the outbound gatekeeper communicates anadmission rejection (“ARJ”) message to the outbound gateway that thecall should be routed directly to the PSTN via a local gateway aspreviously described herein, step 465. The outbound gateway thencommunicates to the call mediator that the call mediator is nowresponsible for routing the call to the PSTN, for example via a localgateway.

If sufficient resources exist, however, the outbound gatekeeper sends anACF to the outbound gateway, and an H.245 media stream setup commencesbetween the call mediator and the outbound gateway, step 470. A RTPvoice stream or other media stream begins between the call mediator andthe outbound gateway, step 475, and the outbound gateway delivers thecall to the destination endpoint via the PSTN, step 480.

Returning to FIG. 6 a, if the address is not in a suitable format, suchas E.164 format, for routing via an alternate network, the enterprisegatekeeper sends to a translation gatekeeper an LRQ containing theaddress associated with the destination endpoint, step 485. For example,the address might be in PDP format. As previously discussed, thetranslation gatekeeper is generally connected to a translation gatewaywhich provides, among other things, number expansion functionality forprivate dial plans by expanding abbreviated PDP called numbers to E.164format before delivery to the PSTN. The translation gateway also passescall directly from the translation gatekeeper to the PSTN.

In some alternate embodiments, the enterprise gatekeeper, instead ofpassing calls to a translation gatekeeper, passes calls requiringtranslation to the PSTN via a translation proxy server. The translationproxy server accepts calls generally intended for the translationgatekeeper and relaunches these calls using an outbound directorygatekeeper as further described herein. The translation proxy serverprovides similar number expansion functionality as a translation gatewayincluding, among other things, number expansion functionality forprivate dial plans by expanding abbreviated PDP called numbers to E.164format before delivery to the outbound directory gatekeeper 165 and thePSTN 125. The translation proxy server translates the number to asuitable format and forwards it to the outbound directory gatekeeper.The outbound directory gatekeeper routes the call to its destination viathe PSTN using an outbound gatekeeper and outbound gateway as furtherdescribed herein.

Turning to FIG. 6 c, the translation gatekeeper selects an appropriatetranslation gateway (or in some embodiments an outbound gateway) toroute the communication to the PSTN, and send the enterprise gatekeeperan LCF containing the IP address or other network identifying address ofthe selected translation gateway, step 490. The enterprise gatekeeper inturn directs the originating call mediator to initiate an H.225 callsetup with the selected translation gateway as known in the art andfurther described herein, step 495. The call mediator contacts thetranslation gateway to setup the call, and the translation gateway sendsan ARQ to the translation gatekeeper requesting a call setup, step 500.

The translation gatekeeper determines, according to selection criteria,whether there are sufficient resources to setup the call via the VoIPnetwork as further described herein, step 505. In some embodiments, thetranslation gatekeeper communicates with the enterprise gatekeeper orthe call mediator to determine whether there are sufficient resources tosetup the call.

If the translation gatekeeper determines that sufficient resources donot exist to setup the call, then the translation gatekeepercommunicates an ARJ to the translation gateway that the call should berouted directly to the PSTN via a local gateway as previously describedherein, step 510. The translation gateway then communicates to the callmediator that the call mediator is now responsible for routing the callto the PSTN.

If sufficient resources exist, however, the translation gatekeeper sendsan ACF to the translation gateway, and an H.245 media stream setupcommences between the call mediator and the translation gateway, step515. An RTP voice stream or other media stream begins between the callmediator and the translation gateway, step 520, the translation gatewaytranslates the number into a suitable format, such as the E.164 format,step 525, and the translation gateway delivers the call to thedestination endpoint via the PSTN, step 530.

Systems and modules described herein may comprise software, firmware,hardware, or any combination(s) of software, firmware, or hardwaresuitable for the purposes described herein. Software and other modulesmay reside on servers, workstations, personal computers, computerizedtablets, PDAs, and other devices suitable for the purposes describedherein. Software and other modules may be accessible via local memory,via a network, via a browser or other application in an ASP context, orvia other means suitable for the purposes described herein. Datastructures described herein may comprise computer files, variables,programming arrays, programming structures, or any electronicinformation storage schemes or methods, or any combinations thereof,suitable for the purposes described herein. User interface elementsdescribed herein may comprise elements from graphical user interfaces,command line interfaces, and other interfaces suitable for the purposesdescribed herein. Screenshots presented and described herein can bedisplayed differently as known in the art to input, access, change,manipulate, modify, alter, and work with information.

While the embodiments of the invention have been described andillustrated in connection with preferred embodiments, many variationsand modifications as will be evident to those skilled in this art may bemade without departing from the spirit and scope of the invention, andthe invention is thus not to be limited to the precise details ofmethodology or construction set forth above as such variations andmodification are intended to be included within the scope of theinvention.

1. A system for alternate routing of communications in a network, thesystem comprising: an origination endpoint associated with anorigination enterprise in communication with a packet-switched network;a destination endpoint associated with a destination enterprise incommunication with the packet-switched network, wherein the originationenterprise and the destination enterprise are associated with a privatedialing plan (PDP) number; a call mediator receiving a communicationsent from the origination endpoint to the destination endpoint, thecommunication including the private dialing plan PDP number, the callmediator appending a customer-specific identifier (CSID) to the PDPnumber, wherein the CSID uniquely identifies either the originationenterprise or the destination enterprise; and a gatekeeper in thepacket-switched network programmed to determine, according to selectioncriteria, whether to route the communication from the originationendpoint to the destination endpoint using at least a secondcircuit-switched network, the gatekeeper further programmed todistinguish between the origination enterprise and the destinationenterprise based on the CSID.
 2. The system of claim 1, wherein theorigination endpoint comprises a VoIP endpoint.
 3. The system of claim1, wherein the packet-switched network comprises a VoIP network.
 4. Thesystem of claim 1, wherein the destination endpoint comprises a VoIPendpoint.
 5. The system of claim 1, wherein the destination endpointcomprises a PSTN endpoint.
 6. The system of claim 1, wherein thegatekeeper comprises an enterprise gatekeeper.
 7. The system of claim 1,wherein the gatekeeper comprises an inbound gatekeeper.
 8. The system ofclaim 1, wherein the gatekeeper comprises an outbound gatekeeper.
 9. Thesystem of claim 1, wherein the gatekeeper comprises a translationgatekeeper.
 10. The system of claim 1, wherein the selection criteriacomprises available bandwidth criteria.
 11. The system of claim 10,wherein the available bandwidth criteria comprises whether a number ofcall counts processed by an enterprise gatekeeper is above a specifiedthreshold.
 12. The system of claim 1, wherein the selection criteriacomprises network resource availability criteria.
 13. The system ofclaim 12, wherein the network resource availability criteria comprisesthe availability of a network component.
 14. The system of claim 13,wherein the network component comprises a network endpoint.
 15. Thesystem of claim 14, wherein the gatekeeper determines the availabilityof the network endpoint by receiving an admission request containing anetwork address associated with the network endpoint, and determineswhether the network address associated with the network endpoint is amember of a set of available network addresses.
 16. The system of claim13, wherein the network component comprises a second call mediatorassociated with the destination endpoint.
 17. The system of claim 16,wherein the gatekeeper determines the availability of the second callmediator by receiving an admission request containing a network addressassociated with a network endpoint, and determines whether a third callmediator associated with the network address is a member of a set ofavailable call mediators.
 18. The system of claim 13, wherein thenetwork component comprises a gatekeeper.
 19. The system of claim 13,wherein the network component comprises a gateway.
 20. The system ofclaim 13, wherein the network component comprises a router.
 21. Thesystem of claim 1, wherein the circuit-switched network comprises thePSTN.
 22. The system of claim 1 further comprising a translation gatewaythat translates a E.164 direct inward dial (DID) number into a numberthat is routable over a Public Switched Telephone Network (PSTN).